package cn.jobstart.es.search;

import cn.jobstart.es.model.CompanyEs;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;

import java.util.List;

/**
 * @author sunke
 * @version 1.0
 * @Description 企业es 搜索
 * @date 2023-09-22 10:45
 */
@Data

public class CompanyEsSearch extends AbstractEsSearch<CompanyEs, CompanyEsSearch> {



    @ApiModelProperty(value = "主键")
    private List idIn;
    @ApiModelProperty(value = "企业名称")
    private String nameLike;
    @ApiModelProperty(value = "组织机构代码")
    private String tinLike;
    @ApiModelProperty(value = "企业性质 1:外资:foreign_capital,2:合资:joint_venture,3:国企:state_owned_enterprise,4:私营/民营公司:private_companies,5:上市公司:listed_company,6:外企代表处:foreign_enterprise_representing,7:政府机关:government_office,8:事业单位:public_institutions,9:非盈利机构:non_profit_organization,10:其他性质:other_nature")
    private List natureIn;
    @ApiModelProperty(value = "企业规模 9:10人以下,49:10～50人,199:50～200人,499:200～500人,999:500～1000人,1000:1000人以上")
    private List scaleIn;
    @ApiModelProperty(value = "公司简介")
    private String introLike;
    @ApiModelProperty(value = "官网")
    private String websiteLike;
    @ApiModelProperty(value = "省")
    private String provinceLike;
    @ApiModelProperty(value = "城市")
    private String cityLike;
    @ApiModelProperty(value = "区")
    private String areaLike;
    @ApiModelProperty(value = "所在行业")
    private String industryLike;
    @ApiModelProperty(value = "公司电话")
    private String telLike;
    @ApiModelProperty(value = "公司地址")
    private String addressLike;
    @ApiModelProperty(value = "传真")
    private String faxLike;
    @ApiModelProperty(value = "电子邮箱")
    private String emailLike;
    @ApiModelProperty(value = "渠道来源")
    private List channelIn;
    @ApiModelProperty(value = "来源企业ID")
    private String sourceCompanyIdEq;
    @ApiModelProperty(value = "行业ID")
    private String industryIdEq;
    @ApiModelProperty(value = "公司详情")
    private String infoLike;

    @Override
    public CompanyEsSearch getThis() {
        return this;
    }

    public CompanyEsSearch setIdIn(List idIn) {
        this.idIn = idIn;
        in(CompanyEs::getId, idIn);
        return this;
    }

    public CompanyEsSearch setNameLike(String nameLike) {
        this.nameLike = nameLike;
        like(CompanyEs::getName, nameLike);
        return this;
    }

    public CompanyEsSearch setTinLike(String tinLike) {
        this.tinLike = tinLike;
        like(CompanyEs::getTin, tinLike);
        return this;
    }

    public CompanyEsSearch setNatureIn(List natureIn) {
        this.natureIn = natureIn;
        in(CompanyEs::getNature, natureIn);
        return this;
    }

    public CompanyEsSearch setScaleIn(List scaleIn) {
        this.scaleIn = scaleIn;
        in(CompanyEs::getScale, scaleIn);
        return this;
    }

    public CompanyEsSearch setIntroLike(String introLike) {
        this.introLike = introLike;
        like(CompanyEs::getIntro, introLike);
        return this;
    }

    public CompanyEsSearch setWebsiteLike(String websiteLike) {
        this.websiteLike = websiteLike;
        like(CompanyEs::getWebsite, websiteLike);
        return this;
    }

    public CompanyEsSearch setProvinceLike(String provinceLike) {
        this.provinceLike = provinceLike;
        like(CompanyEs::getProvince, provinceLike);
        return this;
    }

    public CompanyEsSearch setCityLike(String cityLike) {
        this.cityLike = cityLike;
        like(CompanyEs::getCity, cityLike);
        return this;
    }

    public CompanyEsSearch setAreaLike(String areaLike) {
        this.areaLike = areaLike;
        like(CompanyEs::getArea, areaLike);
        return this;
    }

    public CompanyEsSearch setIndustryLike(String industryLike) {
        this.industryLike = industryLike;
        like(CompanyEs::getIndustry, industryLike);
        return this;
    }

    public CompanyEsSearch setTelLike(String telLike) {
        this.telLike = telLike;
        like(CompanyEs::getTel, telLike);
        return this;
    }

    public CompanyEsSearch setAddressLike(String addressLike) {
        this.addressLike = addressLike;
        like(CompanyEs::getAddress, addressLike);
        return this;
    }

    public CompanyEsSearch setFaxLike(String faxLike) {
        this.faxLike = faxLike;
        like(CompanyEs::getFax, faxLike);
        return this;
    }

    public CompanyEsSearch setEmailLike(String emailLike) {
        this.emailLike = emailLike;
        like(CompanyEs::getEmail, emailLike);
        return this;
    }

    public CompanyEsSearch setChannelIn(List channelIn) {
        this.channelIn = channelIn;
        in(CompanyEs::getChannel, channelIn);
        return this;
    }

    public CompanyEsSearch setSourceCompanyIdEq(String sourceCompanyIdEq) {
        this.sourceCompanyIdEq = sourceCompanyIdEq;
        eq(CompanyEs::getSourceCompanyId, sourceCompanyIdEq);
        return this;
    }

    public CompanyEsSearch setIndustryIdEq(String industryIdEq) {
        this.industryIdEq = industryIdEq;
        eq(CompanyEs::getIndustryId, industryIdEq);
        return this;
    }

    public CompanyEsSearch setInfoLike(String infoLike) {
        this.infoLike = infoLike;
        like(CompanyEs::getInfo, infoLike);
        return this;
    }
}
